In recent years, one transmitting node often sends packets of the same content to a plurality of receiving nodes in, for example, video distribution using the Internet. In such a case, when the transmitting node distributes packets under the unicast scheme, the amount of data transmitted by the transmitting node increases in proportion to the number of receiving nodes. In such a case, the transmitting node often distributes packets in the multicast scheme. In the multicast scheme, a router located in the middle of a route duplicates a packet as required, so that the transmitting node needs only to send one packet, thereby efficiently using the network bandwidth.
In multicast distribution, the network bandwidth where receiving nodes can receive as input are different, and so, when the transmitting node sends data in accordance with a specific receiving node, there is a problem that other receiving nodes cannot efficiently use the network bandwidth. The layered multicast scheme is one of schemes to solve this problem.
In the layered multicast scheme, first, based on a video signal or the like inputted from a camera for example, layered data formed with a base layer and at least one differential layers is created using a layered coding technique first. The layered data created is delivered to a plurality of receiving nodes. In this case, the receiving node receives layered data of appropriate differential layers matching the performance, communication environment and desired video quality of the receiving node in addition to layered data of the base layer. Generally, by receiving more layered data of differential layers, the receiving node can play back higher-quality video.
In the layered multicast scheme, when the transmitting node sets up a plurality of receiving nodes per layer as distribution destinations, the transmitting node generally uses implicit multicast scheme. On the other hand, Patent Document 1 discloses a method whereby a transmitting node sets up the transmission destination using the explicit multicast scheme in layered multicast distribution.
Before explaining the invention disclosed in Patent Document 1, the explicit multicast scheme will be explained here first.
The explicit multicast scheme represented by XCAST is a multicast scheme whereby a transmitting node explicitly specifies receiving nodes by listing unicast addresses of a plurality of destination receiving nodes in an option header or payload of a packet (see Non-Patent Document 1). Hereinafter, XCAST will be explained as an example of the explicit multicast scheme with reference to accompanying drawings.
FIG. 1 shows an overview of a communication network for explaining XCAST. FIG. 2 illustrates schematic configurations of an XCAST packet.
Communication network 1 in FIG. 1 is constructed of one transmitting node 10, five receiving nodes 20 to 24 and three routers 30 to 32.
Transmitting node (S) 10 creates layered data from inputted original data through layered coding and creates packets by adding information such as destination address to the layered data created. Furthermore, transmitting node (S) 10 sends the packets created to communication network 1.
Receiving nodes (R1 to R5) 20 to 24 receive the packets delivered by transmitting node 10. Furthermore, receiving nodes 20 to 24 decode the received data and combine the base layer data and the differential layer data.
Routers 30 to 32 execute routing based on the destination address information included in each packet.
In this communication network 1, a case is assumed where transmitting node 10 sends a packet to first receiving node (R1) 20, third receiving node (R3) 22 and fourth receiving node (R4) 23. The packet created by transmitting node 10 is, for example, as shown in FIG. 2A.
As shown in FIG. 2A, IPv6 packet 40 in XCAST scheme has unicast header 41, routing header 42 and payload 43. IPv6 packet 40 actually has other headers, but the explanations will be omitted here for ease of explanation.
Unicast header 41 is an area to describe one destination address and one source address. For example, packet 40 in FIG. 2A lists the address of R1 (dst=R1) as the destination address and the address of S (src=S) as the source address. The destination address listed in unicast header 41 is the highest undelivered address among the addresses listed in routing header 42 (described later). By listing one unicast address of the receiving node in unicast header 41, even if a router in the route does not support XCAST, the router can recognize XCAST packet 40 as a unicast packet and can transfer the packet to the receiving node specified as the destination address of the unicast header.
Routing header 42 is an area to describe an address list of destination receiving nodes. Furthermore, routing header 42 also includes a flag showing whether or not the packet is distributed to each address of the receiving node. Packet 40 in FIG. 2A describes the addresses of the first receiving node (R1), the third receiving node (R3) and the fourth receiving node (R4). The addresses in the address list are arranged in order, and in the case of packet 40 in FIG. 2A, for example, R1 located on the left in the figure is the highest and R4 located on the right is the lowest. As described above, the highest undelivered address in routing header 42 is described in unicast header 41 as the destination address.
Payload 43 is the body of data to be transmitted such as video encoding data.
Next, in communication network 1 in FIG. 1, the operations of the routers will be explained when transmitting node 10 sends packet 40 in FIG. 2A to first receiving node 20, third receiving node 22 and fourth receiving node 23. Here, optimization to a unicast packet will not be taken into consideration for ease of explanation.
First, transmitting node 10 sends packet 40 in FIG. 2A to first router 30.
First router 30 duplicates and transfers packet 40 with reference to the address list in received packet 40. In this case, packet 40 in FIG. 2A is duplicated into packet 44 (FIG. 2B) addressing the first receiving node (R1) in which the addresses of the third receiving node (R3) and fourth receiving node (R4) are designated as already delivered and packet 45 (FIG. 2C) addressing the third receiving node (R3) and fourth receiving node (R4) in which the address of the first receiving node (R1) is designated as already delivered and further the destination address of the unicast header is replaced by the address of the third receiving node (R3). After the packet is duplicated, packet 44 is sent to first receiving node 20 and packet 45 is transferred to second router 31.
Similar to first router 30, second router 31 duplicates and transfers packet 45 with reference to the address list in received packet 45. In this case, packet 45 is duplicated into packet 46 (FIG. 2D) addressing third receiving node (R3) and packet 47 (FIG. 2E) addressing fourth receiving node (R4). After the packet is duplicated, packet 46 is sent to third receiving node 22 and packet 47 is transferred to third router 32.
Similar to first router 30 and second router 31, third router 32 duplicates and transfers packet 47 with reference to the address list in received packet 47. In this case, packet 47 is transferred to fourth receiving node 23 as is.
In this way, when a router in the communication network supports XCAST, the router efficiently delivers the packet to each receiving node while duplicating and transferring the packet with reference to the address list in the received packet.
Next, the operation of the routers and receiving nodes will be explained in a case where the routers in the communication network do not support XCAST. Here, a case is assumed where no routers 30 to 32 in FIG. 1 support XCAST. A case will be explained where transmitting node 10 sends packet 48 in FIG. 3A (same as packet 40 in FIG. 2A) to first receiving node 20, third receiving node 22 and fourth receiving node 23.
First, transmitting node 10 sends packet 48 to first router 30. First router 30 transfers packet 48 with reference to the destination address in unicast header 41. In this case, packet 48 is transferred to first receiving node 20 described in unicast header 41.
First receiving node 20 receives packet 48 and also generates new packet 49 (FIG. 3B) with reference to the address descried in the address list. To be more specific, the address of the first receiving node (R1) in the address list in packet 48 is designated as already delivered. At the same time, the destination address in unicast header 41 is changed from the address of first receiving node (R1) 20 to the address of third receiving node (R3) 22 which is the highest undelivered address in the address list. Newly generated packet 49 is sent to first router 30.
First router 30 transfers packet 49 with reference to the destination address in unicast header 41. In this case, packet 49 is transferred to second router 31 directed to third receiving node 22 described in unicast header 41. Likewise, second router 31 sends the packet to third receiving node 22 with reference to the destination address in unicast header 41.
Third receiving node 22 receives packet 49 as in first receiving node 20 and also generates new packet 50 (FIG. 3C) with reference to the address described in the address list. Newly generated packet 50 is sent to second router 31.
Similar to first router 30 and second router 31, second router 31 and third router 32 transfer packet 50 to fourth receiving node 23 with reference to the destination address in unicast header 41.
In this way, when a router in the communication network does not support XCAST, the router does not duplicate a packet and transfers the packet received as the unicast packet to a receiving node designated as the destination address of the unicast header. The description of the destination addresses in the unicast header follows the order of the address list in the routing header. Therefore, a packet is delivered by the packet transfer between the receiving nodes and the order of delivery depends on the order in the address list described by the transmitting node in the routing header.
As described above, the explicit multicast scheme is a scheme whereby a transmitting node explicitly specifies a receiving node by describing the addresses of a plurality of destination receiving nodes in the option header or payload of a packet. Furthermore, in the case of XCAST in particular, even if a router in the communication network does not support XCAST, packets can be delivered in the order in the address list described in a routing header as unicast packets.
Here, the invention disclosed in Patent Document 1 will be explained. Patent Document 1 discloses a method (a program and an apparatus) of setting up the packet distribution destination using an explicit multicast scheme when the flow rate is controlled using a layered multicast scheme.
According to this method, the receiving node judges the occurrence of packet loss or congestion from the sequence number of a received packet and feeds back the reception conditions to the transmitting node on a regular term or when congestion occurs. This feedback information includes the time stamp showing the transmission time described in a packet which triggered feedback (time stamp showing the transmission time is given by the transmitting node) in addition to the situation of packet loss. The transmitting node learns the situation of packet loss of the receiving node and delay information from the transmitting node to the receiving node from this feedback information. The transmitting node each calculates an allowed transmission rate for a receiving node using these values and then each determines a layer of layered data to be received by a receiving node. Then, in packet delivery of the layers, the transmitting node sends packets with the address list where destination receiving nodes are assigned.
Hereinafter, the operations of the transmitting node according to the invention disclosed in Patent Document 1 will be explained specifically using communication network 1 in FIG. 1. In a case where a plurality of pieces of layered data depend upon each other when the data is received and combined, a differential layer that is required to receive and play back higher quality data is referred to as a “higher layer,” and conversely, a layer required to combine the higher layers is referred to as a “lower layer.”
FIG. 4 is a table showing an example of the layer configuration in a layered multicast communication. Layer C is a base layer that corresponds to the lowest layer and generates data of 2 Mbps. Layer B is a differential layer that corresponds to a layer higher than layer C and generates data of 8 Mbps. Layer A is a differential layer which corresponds to the highest layer and generates data of 15 Mbps.
In communication network 1 in FIG. 1, transmitting node 10 first calculates allowed transmission rates for receiving nodes 20 to 24 based on feedback information from receiving nodes 20 to 24, respectively. Next, transmitting node 10 sets up the layers of layered data to be transmitted to receiving nodes 20 to 24 based on the calculated allowed transmission rates. For example, the case is assumed where the layer configuration is shown in FIG. 4 and the allowed transmission rates of receiving nodes 20 to 24 are shown in FIG. 5. In this case, transmitting node 10 determines the layers to be transmitted to receiving nodes 20 to 24 as shown in FIG. 6A.
Next, transmitting node 10 rearranges addresses of respective receiving nodes 20 to 24 in ascending order of the rate that can be transmitted on a per layer basis and determines the order of addresses listed in the address list of each layer from the lower layer. As a result, when the allowed transmission rates of receiving nodes 20 to 24 are the allowed transmission rates 72 shown in FIG. 5, the order of addresses per layer is as shown with receiving nodes (addresses) 63 in FIG. 6B (receiving nodes toward the leftmost are top of address lists).
Finally, transmitting node 10 assigns the headers including the address lists in which addresses are rearranged according to the above described procedure to the layered data in the layers and sends the layered data to the network. The packets per layer sent to the network are delivered to the receiving nodes according to a procedure under the explicit multicast scheme.
As described above, according to the method disclosed in Patent Document 1, the transmitting node specifies destinations using the explicit multicast scheme in distribution using layered multicast scheme, so that it is possible to reduce management and control costs of a multicast group and prevent discarding data from being discarded by error due to the influence of jitter in the network. Furthermore, the transmitting node can control flow rates on the receiving nodes and the receiving nodes can receive and play back data matching the network environment of the receiving nodes.
Patent Document 1: Japanese Patent Application Laid-Open No. 2002-354033
Non-Patent Document 1: R. Boivie, N. Feldman, Y. Imai, W. Livens, D. Ooms, O. Paridaens, E. Muramoto, “Explicit Multicast (Xcast) Basic Specification”, draft-ooms-xcast-basic-spec-07.txt, January 2005.